package br.com.divulgaqui.persistence.daoimpl;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.divulgaqui.entity.Pessoa;
import br.com.divulgaqui.entity.Telefone;
import br.com.divulgaqui.persistence.dao.JPAGenericDAO;
import br.com.divulgaqui.persistence.dao.TelefoneDAO;

public class TelefoneDAOimpl extends JPAGenericDAO<Telefone> implements TelefoneDAO {

	public TelefoneDAOimpl(EntityManager entityManager) {
		super(entityManager);
	}

	/**
	 * @author felipe.lauksas@gmail.com
	 * Método procura {@link Telefone} de {@link Pessoa}
	 * @return {@link Set} < {@link Telefone} >
	 */
	@Override
	public Set<Telefone> getTelefonesByPessoaId(Pessoa pessoa) {
		Query query = this.getEntityManager().createQuery("from Telefone t join fetch t.pessoa where t.pessoa.id = :idPessoa");
		query.setParameter("idPessoa", pessoa.getId());
		Set<Telefone> result = new HashSet<Telefone>();
		for (Object o : query.getResultList()) {
			if (o instanceof Telefone) {
				result.add((Telefone)o);
			}
		}
		return result;
	}

}
